package jee.boot.entity.activiti;

import jee.boot.common.annotation.Column;
import jee.boot.common.annotation.Table;

import java.util.Date;

/**
 * 历史任务实例表( act_hi_taskinst )
 */
@Table(name = "act_hi_taskinst")
public class ActTaskInst extends ActDataEntity<ActTaskInst> {
    private static final long serialVersionUID = 1L;
    /**
     * 流程定义ID
     */
    @Column(name = "PROC_DEF_ID_", data = {"procDef.id", "procDef.name", "procDef.key", "procDef.category", "procDef.", "procDef.version", "procDef.resourceName", "procDef.description"})
    private ActProcDef procDef;
    /**
     * 流程实例ID
     */
    @Column(name = "PROC_INST_ID_")
    private String procInst;
    /**
     * 执行实例ID
     */
    @Column(name = "EXECUTION_ID_")
    private ActExecution execution;

    /**
     * 任务名称
     */
    @Column(name = "NAME_")
    private String name;

    /**
     * 父节任务ID
     */
    @Column(name = "PARENT_TASK_ID_")
    private ActTask parentTask;

    /**
     * 任务描述
     */
    @Column(name = "DESCRIPTION_")
    private String description;

    /**
     * 所属人,拥有者（一般情况下为空，只有在委托时才有值）
     */
    @Column(name = "OWNER_")
    private String owner;
    /**
     * 代理人员
     * 签收人或委托人
     */
    @Column(name = "ASSIGNEE_")
    private String assignee;


    /**
     * 表单编号
     */
    @Column(name = "FORM_KEY_")
    private String formKey;


    /**
     * 节点定义ID
     */
    @Column(name = "TASK_DEF_KEY_")
    private String taskDefKey;


    /**
     * 开始时间
     */
    @Column(name = "START_TIME_")
    private Date startTime;

    /**
     * 提醒时间
     */
    @Column(name = "CLAIM_TIME_")
    private Date claimTime;
    /**
     * 结束时间
     */
    @Column(name = "END_TIME_")
    private Date endTime;


    /**
     * 耗时	毫秒值
     */
    @Column(name = "DURATION_")
    private int duration;


    /**
     * 删除原因
     */
    @Column(name = "DELETE_REASON_")
    private String deleteReason;

    /**
     * 优先级别
     */
    @Column(name = "PRIORITY_")
    private int priority;
    /**
     * 过期时间,过期时间，表明任务应在多长时间内完成
     */
    @Column(name = "DUE_DATE_")
    private Date dueDate;


    public ActTaskInst() {
    }

    public ActTaskInst(String id) {
        super(id);
    }

    public ActProcDef getProcDef() {
        return procDef;
    }

    public void setProcDef(ActProcDef procDef) {
        this.procDef = procDef;
    }

    public String getProcInst() {
        return procInst;
    }

    public void setProcInst(String procInst) {
        this.procInst = procInst;
    }

    public ActExecution getExecution() {
        return execution;
    }

    public void setExecution(ActExecution execution) {
        this.execution = execution;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public ActTask getParentTask() {
        return parentTask;
    }

    public void setParentTask(ActTask parentTask) {
        this.parentTask = parentTask;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public String getAssignee() {
        return assignee;
    }

    public void setAssignee(String assignee) {
        this.assignee = assignee;
    }

    public String getFormKey() {
        return formKey;
    }

    public void setFormKey(String formKey) {
        this.formKey = formKey;
    }

    public String getTaskDefKey() {
        return taskDefKey;
    }

    public void setTaskDefKey(String taskDefKey) {
        this.taskDefKey = taskDefKey;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getClaimTime() {
        return claimTime;
    }

    public void setClaimTime(Date claimTime) {
        this.claimTime = claimTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public int getDuration() {
        return duration;
    }

    public void setDuration(int duration) {
        this.duration = duration;
    }

    public String getDeleteReason() {
        return deleteReason;
    }

    public void setDeleteReason(String deleteReason) {
        this.deleteReason = deleteReason;
    }

    public int getPriority() {
        return priority;
    }

    public void setPriority(int priority) {
        this.priority = priority;
    }

    public Date getDueDate() {
        return dueDate;
    }

    public void setDueDate(Date dueDate) {
        this.dueDate = dueDate;
    }

    public static void main(String[] args) {
        System.out.println(new ActTaskInst().getFindListSql());
    }
}
